Purposes

  • Estimate degradation metrics on re-recorded signals from playback experiment at Bosque de Tlalpan, Mexico City, 2019

  • Explore graphically variation in degradation parameters related to abiotic factors

 

degrad_df <- read.csv("./data/processed/barulho_degradation_metrics.csv",
    stringsAsFactors = FALSE)

degrad_df$signal.to.noise.ratio <- NA
# Signal-to-noise ratio
degrad_df$signal.to.noise.ratio[est.alg.sim.all$end - est.alg.sim.all$start >
    0.15] <- signal_to_noise_ratio(est.alg.sim.all[est.alg.sim.all$end -
    est.alg.sim.all$start > 0.15, ], mar = 0.025, pb = TRUE, cores = paral,
    type = 1)$signal.to.noise.ratio

degrad_df$signal.to.noise.ratio[est.alg.sim.all$end - est.alg.sim.all$start <
    0.15] <- signal_to_noise_ratio(est.alg.sim.all[est.alg.sim.all$end -
    est.alg.sim.all$start < 0.15, ], mar = 0.025/2, pb = TRUE, cores = paral,
    type = 1)$signal.to.noise.ratio
pca_degrad_params <- c("blur.ratio", "spectrum.blur.ratio", "envelope.correlation",
    "excess.attenuation", "signal.to.noise.ratio", "cross.correlation",
    "tail.to.signal.ratio", "tail.to.noise.ratio", "spectrum.correlation")

comp.cases <- complete.cases(degrad_df[, names(degrad_df) %in% pca_degrad_params])

pca <- prcomp(degrad_df[comp.cases, names(degrad_df) %in% pca_degrad_params],
    scale. = TRUE)

# add to data
degrad_df$PC1 <- NA
degrad_df$PC1[comp.cases] <- pca$x[, 1]

# plot rotation values by PC
pca_rot <- as.data.frame(pca$rotation[, 1:4])

pca_rot_stck <- stack(pca_rot)

pca_rot_stck$variable <- rownames(pca_rot)
pca_rot_stck$Sign <- ifelse(pca_rot_stck$values > 0, "Positive", "Negative")
pca_rot_stck$rotation <- abs(pca_rot_stck$values)

ggplot(pca_rot_stck, aes(x = variable, y = rotation, fill = Sign)) +
    geom_col() + coord_flip() + scale_fill_viridis_d(alpha = 0.7,
    begin = 0.3, end = 0.8) + facet_wrap(~ind)

cormat <- cor(degrad_df[, degrad_params], use = "pairwise.complete.obs")

rownames(cormat) <- colnames(cormat) <- names(degrad_params)

cols_corr <- colorRampPalette(c("white", "white", viridis(4, direction = -1)))(10)

cp <- corrplot.mixed(cormat, tl.cex = 0.7, upper.col = cols_corr,
    lower.col = cols_corr, order = "hclust", lower = "number", upper = "ellipse",
    tl.col = "black")

# sort parameters as in clusters for cross correlation
degrad_params <- degrad_params[match(rownames(cp$corr), names(degrad_params))]

Change with distance by frequency

Blur ratio
  Spectrum blur ratio
  Tail to signal ratio
  PC1
  Excess attenuation
  SPL
  Tail to noise ratio
  Spectrum correlation
  Envelope correlation
  Cross correlation
  Signal to noise ratio
  Signal to noise ratio
 

Habitat structure

## [1] "blur.ratio"

## [1] "spectrum.blur.ratio"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

## [1] "excess.attenuation"

## [1] "SPL"

## [1] "tail.to.noise.ratio"

## [1] "spectrum.correlation"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

Frequency modulation and habitat structure

## [1] "blur.ratio"

## [1] "spectrum.blur.ratio"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

## [1] "excess.attenuation"

## [1] "SPL"

## [1] "tail.to.noise.ratio"

## [1] "spectrum.correlation"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

Amplitude modulation and habitat structure

## [1] "blur.ratio"

## [1] "spectrum.blur.ratio"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

## [1] "excess.attenuation"

## [1] "SPL"

## [1] "tail.to.noise.ratio"

## [1] "spectrum.correlation"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

Harmonicity and habitat structure

## [1] "blur.ratio"

## [1] "spectrum.blur.ratio"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

## [1] "excess.attenuation"

## [1] "SPL"

## [1] "tail.to.noise.ratio"

## [1] "spectrum.correlation"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

Duration and habitat structure

## [1] "blur.ratio"

## [1] "spectrum.blur.ratio"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

## [1] "excess.attenuation"

## [1] "SPL"

## [1] "tail.to.noise.ratio"

## [1] "spectrum.correlation"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

Temperature

## [1] "blur.ratio"

## [1] "spectrum.blur.ratio"

## [1] "tail.to.signal.ratio"

## [1] "PC1"

## [1] "excess.attenuation"

## [1] "SPL"

## [1] "tail.to.noise.ratio"

## [1] "spectrum.correlation"

## [1] "envelope.correlation"

## [1] "cross.correlation"

## [1] "signal.to.noise.ratio"

## [1] "signal.to.noise.ratio"

 

Takeaways

 


 

Session information

## R version 4.4.1 (2024-06-14)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 22.04.4 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=es_CR.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=es_CR.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=es_CR.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=es_CR.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: America/Costa_Rica
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] cowplot_1.1.3      ggdist_3.3.2       brms_2.21.0        Rcpp_1.0.13       
##  [5] corrplot_0.92      viridis_0.6.5      viridisLite_0.4.2  tidyr_1.3.1       
##  [9] ggplot2_3.5.1      baRulho_2.1.2      ohun_1.0.2         warbleR_1.1.32    
## [13] NatureSounds_1.0.4 seewave_2.2.3      tuneR_1.4.7        Rraven_1.0.13     
## [17] rprojroot_2.0.4    formatR_1.14       knitr_1.48         kableExtra_1.4.0  
## [21] remotes_2.5.0     
## 
## loaded via a namespace (and not attached):
##   [1] DBI_1.2.3            bitops_1.0-7         pbapply_1.7-2       
##   [4] gridExtra_2.3        inline_0.3.19        sandwich_3.1-0      
##   [7] testthat_3.2.1.1     rlang_1.1.4          magrittr_2.0.3      
##  [10] multcomp_1.4-25      matrixStats_1.3.0    e1071_1.7-14        
##  [13] compiler_4.4.1       loo_2.8.0            png_0.1-8           
##  [16] systemfonts_1.1.0    vctrs_0.6.5          Sim.DiffProc_4.9    
##  [19] stringr_1.5.1        pkgconfig_2.0.3      fastmap_1.2.0       
##  [22] backports_1.5.0      labeling_0.4.3       utf8_1.2.4          
##  [25] rmarkdown_2.27       purrr_1.0.2          xfun_0.46           
##  [28] cachem_1.1.0         jsonlite_1.8.8       highr_0.11          
##  [31] Deriv_4.1.3          parallel_4.4.1       R6_2.5.1            
##  [34] StanHeaders_2.32.10  bslib_0.8.0          stringi_1.8.4       
##  [37] estimability_1.5.1   brio_1.1.5           jquerylib_0.1.4     
##  [40] assertthat_0.2.1     rstan_2.32.6         klippy_0.0.0.9500   
##  [43] zoo_1.8-12           bayesplot_1.11.1     splines_4.4.1       
##  [46] Matrix_1.7-0         igraph_2.0.3         tidyselect_1.2.1    
##  [49] rstudioapi_0.16.0    abind_1.4-5          yaml_2.3.10         
##  [52] codetools_0.2-20     dtw_1.23-1           curl_5.2.1          
##  [55] pkgbuild_1.4.4       lattice_0.22-6       tibble_3.2.1        
##  [58] withr_3.0.1          bridgesampling_1.1-2 posterior_1.6.0     
##  [61] coda_0.19-4.1        evaluate_0.24.0      signal_1.8-1        
##  [64] survival_3.7-0       sf_1.0-16            units_0.8-5         
##  [67] proxy_0.4-27         RcppParallel_5.1.8   xml2_1.3.6          
##  [70] pillar_1.9.0         tensorA_0.36.2.1     KernSmooth_2.23-24  
##  [73] checkmate_2.3.2      stats4_4.4.1         distributional_0.4.0
##  [76] generics_0.1.3       RCurl_1.98-1.16      rstantools_2.4.0    
##  [79] munsell_0.5.1        scales_1.3.0         xtable_1.8-4        
##  [82] class_7.3-22         glue_1.7.0           emmeans_1.10.3      
##  [85] tools_4.4.1          mvtnorm_1.2-5        grid_4.4.1          
##  [88] QuickJSR_1.3.1       colorspace_2.1-1     nlme_3.1-165        
##  [91] cli_3.6.3            fansi_1.0.6          svglite_2.1.3       
##  [94] Brobdingnag_1.2-9    dplyr_1.1.4          V8_4.4.2            
##  [97] gtable_0.3.5         fftw_1.0-8           sass_0.4.9          
## [100] digest_0.6.36        classInt_0.4-10      TH.data_1.1-2       
## [103] farver_2.1.2         rjson_0.2.21         htmltools_0.5.8.1   
## [106] lifecycle_1.0.4      MASS_7.3-61